<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script type="text/javascript">
    /* 
    一.关系运算符：>  < >=  <= != == === !==
    1.关系运算符的结果是布尔值
    2.对于数值类型：关系运算符直接运算，返回结果
      对于非数值类型：自动转换为数值类型，再进行运算
         2.1 如果比较运算符两边都是非数值情况，则不会转换为数值，而是比较字符串的字符unicode编码
    二.相等运算符
       1.比较数值型时，返回正常的true或false
       2.比较一个为数值型，一个为非数值型时，会把非数值型的转换为数值型，再进行运算
       3.两个非字符型的比较，会先转换为数值型，再比较
       4.undefined衍生自null,所有两个值比较为true
       5.NaN不喝任何值相等包括它自己
         判断变量是否为NaN的方法isNaN();

    */
   /* //任何值和NaN做比较都是false
   console.log(10 > "hello");//false，非空字符转换为数值字符为NaN
   console.log("a">NaN);//false
   console.log(10 > null);//true
   console.log(10 > true);//true
   console.log(10 > "0");//true
   //true转换为1,false转换为0
   console.log(true>false);//true
   //2.1 如果比较运算符两边都是非数值情况，则不会转换为数值，而是比较字符串的字符unicode编码
   console.log("1">"2");//false
   console.log("10">"2");//false
   console.log("a">"b");//false
   //2.2 比较的规则是相同的位跟相同的位比较，比较的相同的位置的UNIcode编码
   //      所以两个数字型的的字符串比较可能会得到错误的结果，需要将其中一个处理成数字
   console.log("a"<"b");//true
   console.log("10"<"2");//true
   console.log("30"<+"2");//false */

  //相等运算符
  console.log(10==5);//false
  console.log(1=="1");//true
  console.log(1==true);//true
  //undefined衍生自null,所有两个值比较为true
  console.log(undefined==null);//true

  //5.NaN不喝任何值相等包括它自己
  console.log("hello"==NaN);//false
  console.log(NaN==NaN);//false
  var a=NaN;
  console.log(isNaN(a));//true
  </script>
</head>
<body>
  
</body>
</html>